package com.douma.第22天;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 抖码算法，让算法学习变的简单有趣
 *
 * @作者 : 老汤
 */
public class 关联子串 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String str1 = sc.next();
        String str2 = sc.next();

        if (str1.length() > str2.length()) {
            // str1 不可能是 str2 的子串
            System.out.println(-1);
            return;
        }

        // 统计 str1 中每个字符出现的此时
        int[] cnt1 = new int[26];
        for (char c : str1.toCharArray()) {
            cnt1[c - 'a']++;
        }

        // 使用滑动窗口统计窗口内 str2 中字符出现的次数
        // 对于滑动窗口请学习课程 B【刷题篇第 12 天：滑动窗口】 第 1 节到第 4 节
        // 链接：https://yjs.xet.tech/s/1cFqgM
        int[] cnt2 = new int[26];
        int left = 0, right = 0;
        while (right < str2.length()) {
            cnt2[str2.charAt(right) - 'a']++;

            // 如果窗口的大小等于 str1 的长度
            if (right - left + 1 == str1.length()) {
                // 比较窗口内的字符出现的次数和 str1 字符出现的次数，
                // 如果相等的话，说明 str1 和这个窗口是相等的，
                // 那么 str1 也就是 str2 的关联子串
                if (Arrays.equals(cnt1, cnt2)) {
                    System.out.println(left);
                    return;
                }

                // 如果不相等的话，则移动窗口的左边界
                cnt2[str2.charAt(left) - 'a']--;
                left++;
            }

            // 再移动窗口的右边界，相当于把大小为 str1 长度的窗口往前移动了一位
            right++;
        }

        // 如果在窗口内没有找到关联子串的话，说明 str1 不是 str2 的关联子串
        System.out.println(-1);

        sc.close();
    }
}
